package com.juzi.设计对象;

public class 介绍 {
    public static void main(String[] args) {
        System.out.println("======================================\n" +
                "类是什么？\n" +
                "   类(设计图) ：是对象共同特征的描述； \n" +
                "   对象：是真实存在的具体实例。\n" +
                "结论：在Java中，必须先设计类，才能创建对象并使用。\n" +
                "-----------------------------\n" +
                "如何设计类\n" +
                "public class 类名 {\n" +
                "          1、成员变量（代表属性,一般是名词)\n" +
                "           2、成员方法（代表行为,一般是动词）\n" +
                "           3、构造器 （后几节再说）\n" +
                "           4、代码块 （后面再学）\n" +
                "           5、内部类 （后面再学）\n" +
                "}\n" +
                "\n" +
                "public class Car {\n" +
                "   //属性（成员变量）\n" +
                "   String name;\n" +
                "   double price;\n" +
                "   //行为（方法）\n" +
                "   public void start(){\n" +
                "   \n" +
                "   }\n" +
                "   public void run(){\n" +
                "\n" +
                "   }\n" +
                "}\n" +
                "-----------------------------\n" +
                "如何创建类的对象\n" +
                "类名 对象名 = new 类名();\n" +
                "Car c = new Car();\n" +
                "-----------------------------\n" +
                "如何使用对象\n" +
                "访问属性:   对象名.成员变量\n" +
                "访问行为:   对象名.方法名(…)\n" +
                "-----------------------------\n" +
                "定义类的补充注意事项\n" +
                "   类名首字母建议大写，且有意义，满足“驼峰模式”。\n" +
                "   一个Java文件中可以定义多个class类，但只能一个类是public修饰，而且public修饰的类名必须成为代码文件名。\n" +
                "   实际开发中建议还是一个文件定义一个class类。\n" +
                "   成员变量的完整定义格式是：修饰符 数据类型 变量名称 = 初始化值； 一般无需指定初始化值，存在默认值。\n" +
                "------------------------------\n" +
                "1. 定义类有哪些建议，有什么需要注意的？\n" +
                "   类名首字母建议大写、英文、有意义，满足驼峰模式，不能用关键字，满足标志符规定\n" +
                "   一个代码文件中可以定义多个类，但是只能一个类是public修饰的，public修饰的类名必须是Java代码的文件名称。\n" +
                "2. 成员变量的格式是什么样的，有什么特点？\n" +
                "   成员变量的完整格式是：修饰符 数据类型 变量名称 = 初始化值； \n" +
                "   一般无需为成员变量指定初始化值，存在默认值。\n");
        System.out.println("\n" +
                "1. 对象到底是放在哪个位置的？\n" +
                "堆内存中\n" +
                "2. Car c = new Car();  c变量名中存储的是什么？\n" +
                "存储的是对象在堆内存中的地址。\n" +
                "3. 成员变量（name、price）的数据放在哪里，存在于哪个位置？\n" +
                "对象中，存在于堆内存中。\n");
    }
}
